package com.itheima.demo5genericity;

import java.util.ArrayList;

public class GenericityDemo6 {
    public static void main(String[] args) {
//        目标：搞清楚泛型和集合不支持基本数据类型，只支持对象类型（引用数据类型）
//        ArrayList<int> list=new ArrayList<>();//错误
//        把基本数据类型变成包装类对象
//        手工包装：
//        Integer i=new Integer(100);//过时
        Integer i= Integer.valueOf(100);//推荐的
        Integer j=Integer.valueOf(100);
        Integer k=Integer.valueOf(130);
        Integer l=Integer.valueOf(130);
        System.out.println(i==j);//i和j是同一个对象，sun公司优化了-127到128之间定成同一个对象，所以是true
        System.out.println(l==k);//l和k不是同一个对象
//        自动装箱：基本数据类型的数据可以直接变成包装对象的数据，不需要额外做任何事
        Integer it1=100;
        Integer it2=100;
        Integer it3=130;
        Integer it4=130;
        System.out.println(it1==it2);
        System.out.println(it3==it4);
        int i1=it1;
        System.out.println(i1);
        System.out.println("==========================");
        ArrayList<Integer> list=new ArrayList<>();
        list.add(123);//自动装箱，这里的123自动变成Integer对象
        int rs=list.get(0);//自动拆箱，把Integer对象变成int基本数据类型
        System.out.println(rs);
//        包装类新增的功能
//        1、把基本类型的数据转为字符串
        int num=100;
        String s=Integer.toString(num);//"100"
        System.out.println(s+100);
        Integer num1=100;
        String s1=Integer.toString(num1);//"100"
        System.out.println(s+100);
        System.out.println("--------------------------");
//        2、可以把字符串数值转换成对应的基本数据类型(很有用）
        String str="123";
        int rs1=Integer.parseInt(str);
        System.out.println(rs1+100);
        String str2="123.23";
        double rs2=Double.valueOf(str2);
        System.out.println(rs2+100);
    }
}